<?php

  require_once "function.php";

  // 取得 __VIEWSTATE 及 __EVENTVALIDATION 變數 ($viewstate, $eventvalidation)
  // 每個頁面幾乎都有，可考慮寫成另一個 function
  $portal="http://172.31.1.10/General/Login.aspx";

  function getviewstate($url){
    $dom=new DOMDocument;
    $dom->preserveWhiteSpace=FALSE;
    @$dom->loadHTMLFile($url);
    foreach($dom->getElementsByTagName('input') as $element){
      if($element->getAttribute('name')=='__VIEWSTATE')
        $viewstate=$element->getAttribute('value');
	  if($element->getAttribute('name')=='__EVENTVALIDATION'){
        $eventvalidation=$element->getAttribute('value');
        $pagevalidation=array($viewstate,$eventvalidation);
	    return $pagevalidation;
	  }
    }
  }

  $validation=getviewstate($portal);
  $viewstate=$validation[0];
  $eventvalidation=$validation[1];

  // 登入 portal 後取得 ASP SESSIONID ($sessionid)
  // 在 URL 後加上 ?SESSION=$sessionid 即可正常連線
  // 若 __VIEWSTATE 只和 IP 有關的話可考慮 設為 constant 即可
  $r=new HttpRequest($portal);
  $r->setMethod(HTTP_METH_POST);
  $data=array('txtUserID'=>$url['portal']['user'],'txtPass'=>md5($url['portal']['pass']),'__EVENTTARGET'=>'','__EVENTARGUMENT'=>'','__VIEWSTATE'=>$viewstate,'__EVENTVALIDATION'=>$eventvalidation,'rdblQuickMenu'=>'H','imgBtnSubmitNew.x'=>'0','imgBtnSubmitNew.y'=>'0');
  $r->addPostFields($data);
  $r->send();
  $header=$r->getResponseHeader();
  $session=explode('SESSION=',$header['Location']);
  $sessionid=$session[1];

  // 回傳 portal 登入後首頁
//  $home="http://172.31.1.10/General/Redirect.aspx?SESSION=".$sessionid;
//  $r=new HttpRequest($home);
//  $r->send();
//  echo $r->getResponseBody();

  ?

